パソコン活用研究PCマニアックの道(アセンブラ、DOS、Windows、その他プログラム言語、旧型PCの活用研究)
Prolog記述の仕方の基本(節、アトム、事実の定義と変数)
1 節、事実の定義、アトム
parent(sazae,tara). |
Prologを起動したら、[File]-[Consult] とクリックして、先ほど作ったsazae0.swiを読み込んでください。
読み込みが完了すると、以下のように
% c:/Program Files/pl/src/sazae0.swi compiled ............
という表示がされます。
SWI-prologは
1 ?-
と表示してコマンド待ち状態になっていると思いますので、続けて
?- parent(sazae,tara).
と質問して下さい。これは、「さざえはたらの親か」という質問です。
sazae0.swi で「さざえはたらのおやである」、という事実を定義してありますので、PrologはYesと答えを
返します。
2 変数
ただ、yes, no で答えるだけではそんなに面白くもありませんが、Prologではもう少し人工知能言語と
言われるような面白いことができます。
続けて、
?- parent(X,tara).
と聞いてみましょう。これは、たらの親は誰(変数X)?という質問です。
Prologでは、変数は大文字にします。
X = sazae
たらの親はさざえであるという答えが返ってきました。どうでしょうか、面白くありませんか。
Prologでは、このように変数にあてはまる答えを探してくれるのです。
ではもっと面白いことをしてみましょう。引数を全て変数にしてみたらどうなるでしょうか。例えば
?- parent(X,Y).
と聞いてみましょう。今度は、親も子供も変数ですので、親子関係にある親と子供は
誰?(X,Y)という質問になります。
X = sazae Y =tara
という答えが返ってきました。Prologが親子関係にある事実のパターンを探して
その組み合わせを探してくれました。Prologではこの動作をパターンマッチングと呼んでいます。
どうですか、なんか面白そうな言語でしょう。
今回はPrologの基本中の基本の部分について説明してみました。ほんの少しですが、なじみのない
プログラム言語ですので、一挙につめこまずすこしづつやっていきましょう。
今回の分の一連の流れを参考までに掲載しておきます。
(図1)